import { getCurrentTime } from '../support/utils/time'

const TOKEN_FILE = 'token'
const COVER = 'cypress/fixtures/cover.jpg'

describe('MSKJ 管理后台（商品管理）', () => {
  beforeEach(() => {
    cy.fixture(TOKEN_FILE).then(token => {
      window.localStorage.setItem('token', token.token)
    })
  })
  it('检查页面的 [发布商品] 按钮可见可点', () => {
    // 访问商品管理页并检查按钮状态
    cy.visit('/#/match/goods/goods-list')
    cy.contains('发布商品').should('exist').and('be.visible')
  })

  it('发布并上架实物商品', () => {
    cy.intercept('*/up-z2.qiniup.com').as('upload_success')
    cy.intercept('*/shop/add').as('add_success')

    // 访问发布商品页
    cy.visit('/#/match/goods/editor?goodsId=0&action=add')

    // 输入实物商品名称和上传产品封面图
    cy.contains('商品名称').next().type(`实物商品 ${getCurrentTime()}`)
    cy.get('input[type=file]').eq(0).selectFile(COVER, { force: true })
    cy.wait('@upload_success')

    // 选择分组信息、输入M豆和商品详情
    cy.contains('商品分组').next().click()
    cy.contains('生活商品').click()
    cy.get('[placeholder="请输入"]').eq(0).type('10')
    cy.get('.w-e-text-container').type('Cypress 自动化测试中')
    cy.contains('上架').click()

    // 确认创建直播间并确定
    cy.contains('保存').click()
    cy.wait('@add_success')
  })

  it('发布并上架虚拟商品', () => {
    cy.intercept('*/up-z2.qiniup.com').as('upload_success')
    cy.intercept('*/shop/add').as('add_success')
    cy.intercept('*/coupon/getCouponList').as('coupon_list')

    // 访问发布商品页
    cy.visit('/#/match/goods/editor?goodsId=0&action=add')

    //  选择优惠券
    cy.get('.type-item').last().click()
    cy.contains('选择优惠券').click()
    cy.wait('@coupon_list')
    cy.get('.vxe-body--row').first().click()
    cy.contains('确定').click()

    // 输入虚拟商品名称和上传产品封面图
    cy.contains('商品名称').next().type(`虚拟商品 ${getCurrentTime()}`)
    cy.get('input[type=file]').eq(0).selectFile(COVER, { force: true })
    cy.wait('@upload_success')

    // 选择分组信息、输入M豆和商品详情
    cy.contains('商品分组').next().click()
    cy.contains('自动化').click()
    cy.get('[placeholder="请输入"]').eq(0).type('50')
    cy.get('.w-e-text-container').type('Cypress 自动化测试中')
    cy.contains('上架').click()

    // 确认创建直播间并确定
    cy.contains('保存').click()
    cy.wait('@add_success')
  })
})
